1213. মস্ত বড় সংখ্যা

 

একটা সংখ্যাকে মস্ত বড় বলা হয় যদি সেটাকে a^n আকারে লেখা যায়, যার মানে হল a এর n ত্ম ঘাত বা পাওয়ারদুটো মস্ত বড় সংখ্যা ab  আর cd দেওয়া থাকবে <সংখ্যা>^<ঘাত> এই ভাবেবলতে হবে, বলতে হবে এদের মধ্যে বড় কোনটা।

 

ইনপুট

দুটো মস্ত বড় ab আর cd, <সংখ্যা>^<ঘাত> এই ভাবে দেওয়া থাকবেধরে নেওয়া যাবে 1 ≤ <base>, <exponent> ≤ 1000.

 

আউটপুট

ab আর cd এর মধ্যে বড় সংখ্যাটা দেখাতে হবে।

 

উদাহরণ

ইনপুট

3^100 2^150

 

আউটপুট

3^100

 

 

সমাধান

গাণিতিক

 

অ্যালগোরিদম অ্যানালাইসিস

ab < cd অসমতাটির দুই পক্ষেই লগারিদম নিই। আমরা পাবো b lg a < d lg c. b lg a এবং d lg c এর মান double এ এঁটে যায়, তাই এদের তুলনা করা কঠিন না।

 

অ্যালগোরিদম বাস্তবায়ন

ইনপুট ডাটা পড়ে সংখ্যাটা আর তার ঘাতকে আলাদা করে নিই।

 

scanf("%d^%d %d^%d",&a,&b,&c,&d);

 

b lg a and d lg c এর মানকে তুলনা করে উত্তর প্রিন্ট করি।

 

if (b * log(1.0 * a) < d * log(1.0 * c)) printf("%d^%d\n",c,d);

else printf("%d^%d\n",a,b);